<?php
declare (strict_types=1);

namespace app\common\model;

use think\facade\Cache;
use think\facade\Db;

class AclUser extends \ffhome\frame\model\AclUser
{
    /**
     * 员工类别
     */
    const T_EMPLOYEE = 1;
    /**
     * 登录缓存名称
     */
    const LOGIN_TIME_CACHE_NAME = 'login_time_';

    public static function update($id, $data)
    {
        Db::name(self::MODEL_NAME)->where(['id' => $id])->update($data);
    }

    /**
     * 更新登陆时间及登陆次数
     * @param $id
     */
    public static function updateLogin($id)
    {
        //缓存最大时间一天  60*60*24=86400
        Cache::set(self::LOGIN_TIME_CACHE_NAME . $id, date('Y-m-d'), 86400);
        self::update($id, ['login_time' => date('Y-m-d H:i:s'), 'login_num' => Db::raw('login_num + 1')]);
    }

    /**
     * 每天更新一次会员登陆时间
     * @param $id
     */
    public static function updateLoginEveryday($id)
    {
        $data = Cache::get(self::LOGIN_TIME_CACHE_NAME . $id);
        if (empty($data) || $data != date('Y-m-d')) {
            self::updateLogin($id);
        }
    }
}